let obj1 = {
  a: 123,
  b: 999
}

let obj2 = {
  a: 456
}

let a = 789

const arrow = () => {
  console.log(this.a)
}

// 事实证明with内部执行函数并不会改变函数的this指向
with(obj1) {
  arrow() // this指向当前模块函数的this，一个空对象
  fun() // this指向global
}




// 箭头函数会继承执行上下文的的this
function fun() {
  let b = 888
  const fa = () => {
    console.log(b)
    console.log(this.b)
  }
  fa()
}

// fun.bind(obj1)()